home *** CD-ROM | disk | FTP | other *** search
/ MacPeople 1997 August 15 / MACPEOPLE-1997-08-15.ISO.7z / MACPEOPLE-1997-08-15.ISO / アップル関連 / ARA PS アップデート / モデム用追加分 / aiwa PV-PFV144 for 2.1 / aiwa PV-PFV144 for 2.1 next >
Text File  |  1996-06-28  |  10KB  |  512 lines

  1. !  for AIWA PV-PFV144
  2. !
  3. !    Copyright:     1991-1996 Apple Computer, Inc.    All Rights Reserved.
  4. !
  5. !    revision history:
  6. !        v2.1    as shipped with the ARA 2.1
  7. !
  8. !  'mlts' resource info for this modem:
  9. !    byte 1 == 01 -> modem HAS built-in error correction protocols
  10. !    byte 2 == 01 -> modem HAS built-in data compression protocols
  11. !    byte 3 == 200 -> max number of chars in varstr 7
  12. !    byte 4 == 200 -> max number of chars in varstr 8
  13. !    byte 5 == 200 -> max number of chars in varstr 9
  14. !    
  15. @ORIGINATE
  16. @ANSWER
  17. !
  18. ! ---- Initial modem setup ----
  19. !
  20. ! Set serial port speed depending upon the compression flag
  21. !    A higher rate with compression on to handle expanded data from the modem
  22. !    A lower rate closer to the DCE when compression is off
  23. ifstr 5 1 "0"
  24. serreset 57600, 0, 8, 1
  25. jump 2
  26. !
  27. @LABEL 1
  28. serreset 38400, 0, 8, 1
  29. @LABEL 2
  30. hsreset 0 0 0 0 0 0
  31. settries 0
  32. !
  33. ! Get the modem's attention
  34. !
  35. matchclr
  36. matchstr 1 3 "OK¥13¥10"
  37. write "AT¥13"
  38. matchread 30
  39. !
  40. @LABEL 3
  41. !
  42. ! Setup the modem for the following:
  43. !   Reset to factory settings
  44. !   Standard compression/reliablity
  45. !   Lock serial port speed
  46. !   Serial port hardware handshaking, turn off software handshaking
  47. !   Verbose responces and compresion/protocol results
  48. !   CONNECT returns DCE speed
  49. !   Turn off answering
  50. !   Reset or return to command mode on DTR toggle (optional)
  51. !
  52. matchclr
  53. matchstr 1 4 "OK¥13¥10"
  54. write "ATE0Q0¥¥V2&C1&M5¥¥J0¥¥Q3&D0%C1-K0M1¥13"
  55. matchread 30
  56. inctries
  57. iftries 3 101
  58. !
  59. ! Reset the Modem on setup failure
  60. !
  61. DTRClear
  62. pause 5
  63. DTRSet
  64. flush
  65. jump 3
  66. !
  67. !
  68. @LABEL 4
  69. ! Varstring 4 , reliable link protocol:
  70. !    = 0, handled by computer (ARAP)
  71. !    = 1, handled by modem (PPP)
  72. !    = 2, MNP10 protocol (Cellular protocol, no longer supported)
  73. ifstr 4 5 "1"
  74. ifstr 4 5 "2"
  75. !
  76. ! Varstring 4 == 0, turn off reliable link protocol in modem (ARAP)
  77. matchclr
  78. matchstr 1 9 "OK¥13¥10"
  79. write "AT&M0¥13"
  80. matchread 30
  81. jump 101
  82. !
  83. !
  84. @LABEL 5
  85. ! Varstring 5, compression protocol:
  86. !    = 0, handled by computer 
  87. !    = 1, handled by modem
  88. ifstr 5 9 "1"
  89. !
  90. ! Varstring 5 == 0, turn off compression protocol in modem.
  91. matchclr
  92. matchstr 1 9 "OK¥13¥10"
  93. write "AT%C0¥13"
  94. matchread 30
  95. jump 101
  96. !
  97. !
  98. @LABEL 9
  99. ! Varstring 2, modem speaker:
  100. !    = 0, speaker off
  101. !    = 1, speaker on
  102. ifstr 2 13 "1"
  103. pause 5
  104. matchclr
  105. matchstr 1 13 "OK¥13¥10"
  106. write "ATM0¥13"
  107. matchread 30
  108. jump 101
  109. !
  110. ! Modem ready, wait for a call or originate a call
  111. !
  112. @LABEL 13
  113. ifANSWER 32
  114. !
  115. !
  116. ! ---- Originating a call ----
  117. !
  118. ! Varstring 6, dialing mode:
  119. !    = 0, normal dialing
  120. !    = 1, blind dialing
  121. !    = 2, manual dialing
  122. ifstr 6 17 "1"
  123. ifstr 6 15 "2"
  124. jump 19
  125. !
  126. @LABEL 15
  127. note "Manual dialing initiated" 3
  128. ! Display ASK dialog with message.  Goto label 107 if dialog canceled.
  129. ASK 0 "Pick up the phone & dial ^1.  Hit OK when the phone rings, then hangup." 107
  130. ! X1 to ignore dialtone & busy, D to dial, ¥^ generates data tone
  131. write "ATX1D¥^¥13"
  132. jump 32
  133. !
  134. @LABEL 17
  135. note "Dialing without tone" 3
  136. matchclr
  137. matchstr 1 19 "OK¥13¥10"
  138. ! X1 to ignore dialtone & busy
  139. write "ATX1¥13"
  140. matchread 30
  141. jump 101
  142. !
  143. !
  144. @LABEL 19
  145. ! Display the full dialstring contained in Varstring 1
  146. note "Dialing ^1" 3
  147. !
  148. ! Varstrings 7, 8 and 9, contain dialstring fragments
  149. !    Long phone numbers may need to be split into smaller groups
  150. !    for the modem to use
  151. !
  152. ! Varstring 3:  "p" for pulse & "t" for tone dialing
  153. ! Varstring 8 == blank (dialstring in varstring 7)
  154. ! Varstring 9 == blank (dialstring in varstrings 7 & 8)
  155. ! Otherwise (dialstring in varstrings 7, 8 & 9)
  156. ! ¥^ is added to the dialstring to force the modem to generate a data tone
  157. ifstr 8 27 " "
  158. ifstr 9 24 " "
  159. !
  160. !  Write dialstring in varstrings 7, 8 & 9
  161. matchclr
  162. matchstr 1 21 "OK¥13¥10"
  163. write "ATD^3^7;¥13"
  164. matchread 400
  165. jump 101
  166.  
  167. @LABEL 21
  168. matchclr
  169. matchstr 1 22 "OK¥13¥10"
  170. write "ATD^3^8;¥13"
  171. matchread 400
  172. jump 101
  173.  
  174. @LABEL 22
  175. write "ATD^3^9¥13"
  176. jump 32
  177. !
  178. !
  179. @LABEL 24
  180. !  Write dialstring in varstrings 7 & 8
  181. matchclr
  182. matchstr 1 25 "OK¥13¥10"
  183. write "ATD^3^7;¥13"
  184. matchread 400
  185. jump 101
  186.  
  187. @LABEL 25
  188. write "ATD^3^8¥13"
  189. jump 32
  190. !
  191. @LABEL 27
  192. !  Write dialstring in varstring 7
  193. write "ATD^3^7¥13"
  194. !
  195. !
  196. !    ---- Connection responce ----
  197. !
  198. ! The following section will parse modem responces of two types:
  199. !   1) PROTOCOL: xxx, COMPRESSION: xxx, CONNECT xxx
  200. !   2) CONNECT xxx/ARQ/V42
  201. !
  202. @LABEL 32
  203. matchclr
  204. matchstr  1 81  "RING¥13¥10"
  205. matchstr  2 102 "NO DIALTONE¥13¥10"
  206. matchstr  3 103 "NO CARRIER"
  207. matchstr  4 103 "ERROR¥13¥10"
  208. matchstr  5 104 "BUSY¥13¥10"
  209. matchstr  6 105 "NO ANSWER¥13¥10"
  210. matchstr  7 33  "CONNECT "
  211. matchstr  8 32  "CARRIER"
  212. matchstr  9 40  "CONNECT¥13¥10"
  213. matchstr 10 62  "PROTOCOL: LAP"
  214. matchstr 11 62  "PROTOCOL: MNP"
  215. matchstr 12 62  "PROTOCOL: ALT"
  216. matchstr 13 67  "COMPRESSION: V"
  217. matchstr 14 67  "COMPRESSION: MNP5"
  218. matchstr 15 67  "COMPRESSION: CLASS"
  219. matchread 700
  220. ifANSWER 32
  221. jump 101
  222. !
  223. !  Parse the speed of connect result codes
  224. !  2400 and 4800 have two entries each
  225. !  to distinguish them from 24000 and 48000
  226. !
  227. @LABEL 33
  228. matchclr
  229. matchstr  1 40 "2400¥13"
  230. matchstr  2 40 "2400/"
  231. matchstr  3 41 "4800¥13"
  232. matchstr  4 41 "4800/"
  233. matchstr  5 42 "7200"
  234. matchstr  6 43 "9600"
  235. matchstr  7 44 "12000"
  236. matchstr  8 45 "14400"
  237. matchstr  9 46 "16800"
  238. matchstr 10 47 "19200"
  239. matchstr 11 48 "21600"
  240. matchstr 12 49 "24000"
  241. matchstr 13 50 "26400"
  242. matchstr 14 51 "28800"
  243. matchstr 15 52 "31200"
  244. matchstr 16 53 "33600"
  245. matchstr 17 54 "38400"
  246. matchstr 18 55 "48000"
  247. matchstr 19 56 "56000"
  248. matchstr 20 57 "57600"
  249. matchstr 21 58 "64000"
  250. matchread 30
  251. jump 59
  252. !
  253. ! -- Connection rates --
  254. ! CommunicatingAt informs ARA of the raw modem to modem
  255. ! connection speed.
  256. !
  257. @LABEL 40
  258. note "Communicating at 2400 bps." 2
  259. CommunicatingAt 2400
  260. jump 60
  261. !
  262. @LABEL 41
  263. note "Communicating at 4800 bps." 2
  264. CommunicatingAt 4800
  265. jump 60
  266. !
  267. @LABEL 42
  268. note "Communicating at 7200 bps." 2
  269. CommunicatingAt 7200
  270. jump 60
  271. !
  272. @LABEL 43
  273. note "Communicating at 9600 bps." 2
  274. CommunicatingAt 9600
  275. jump 60
  276. !
  277. @LABEL 44
  278. note "Communicating at 12400 bps." 2
  279. CommunicatingAt 12400
  280. jump 60
  281. !
  282. @LABEL 45
  283. note "Communicating at 14400 bps." 2
  284. CommunicatingAt 14400
  285. jump 60
  286. !
  287. @LABEL 46
  288. note "Communicating at 16800 bps." 2
  289. CommunicatingAt 16800
  290. jump 60
  291. !
  292. @LABEL 47
  293. note "Communicating at 19200 bps." 2
  294. CommunicatingAt 19200
  295. jump 60
  296. !
  297. @LABEL 48
  298. note "Communicating at 21600 bps." 2
  299. CommunicatingAt 21600
  300. jump 60
  301. !
  302. @LABEL 49
  303. note "Communicating at 24000 bps." 2
  304. CommunicatingAt 24000
  305. jump 60
  306. !
  307. @LABEL 50
  308. note "Communicating at 26400 bps." 2
  309. CommunicatingAt 26400
  310. jump 60
  311. !
  312. @LABEL 51
  313. note "Communicating at 28800 bps." 2
  314. CommunicatingAt 28800
  315. jump 60
  316. !
  317. @LABEL 52
  318. note "Communicating at 31200 bps." 2
  319. CommunicatingAt 31200
  320. jump 60
  321. !
  322. @LABEL 53
  323. note "Communicating at 33600 bps." 2
  324. CommunicatingAt 33600
  325. jump 60
  326. !
  327. @LABEL 54
  328. note "Communicating at 38400 bps." 2
  329. CommunicatingAt 38400
  330. jump 60
  331. !
  332. @LABEL 55
  333. note "Communicating at 48000 bps." 2
  334. CommunicatingAt 48000
  335. jump 60
  336. !
  337. @LABEL 56
  338. note "Communicating at 56000 bps." 2
  339. CommunicatingAt 56000
  340. jump 60
  341. !
  342. @LABEL 57
  343. note "Communicating at 57600 bps." 2
  344. CommunicatingAt 57600
  345. jump 60
  346. !
  347. @LABEL 58
  348. note "Communicating at 64000 bps." 2
  349. CommunicatingAt 64000
  350. jump 60
  351. !
  352. @LABEL 59
  353. note "Communicating at an unknown rate." 2
  354. jump 60
  355. !
  356. ! Look for reliablilty and compression results 
  357. ! at the end of the connect result.
  358. !
  359. @LABEL 60
  360. matchclr
  361. matchstr  1 63 "LAPM"
  362. matchstr  2 63 "REL4"
  363. matchstr  3 63 "REL5"
  364. matchstr  4 68 "COMP/"
  365. matchstr  5 68 "COMP¥13"
  366. matchstr  6 63 "V42/"
  367. matchstr  7 63 "V42¥13"
  368. matchstr  8 68 "V42BIS"
  369. matchstr  9 68 "V.42bis"
  370. matchstr 10 63 "MNP¥13"
  371. matchstr 11 68 "MNP5"
  372. matchstr 12 70 "¥10"
  373. matchread 30
  374. jump 70
  375.  
  376. ! -- Modem error correction link negotiation --
  377. ! Userhook 2 informs ARA that a modem-to-modem error
  378. ! correcting protocol has been negotiated
  379. !
  380. !
  381. @LABEL 62
  382. note "Modem Reliable Link Established." 2
  383. userhook 2
  384. jump 32
  385. !
  386. @LABEL 63
  387. note "Modem Reliable Link Established." 2
  388. userhook 2
  389. jump 60
  390. !
  391. ! -- Compression negotiation --
  392. ! Userhook 3 informs ARA that a modem-to-modem compression
  393. ! protocol has been negotiated
  394. !
  395. @LABEL 67
  396. note "Modem Compression Established." 2
  397. userhook 3
  398. jump 32
  399. !
  400. @LABEL 68
  401. note "Modem Compression Established." 2
  402. userhook 3
  403. jump 60
  404. !
  405. !
  406. ! -- Normal exit after "CONNECT" --
  407. !
  408. !  This modem has been setup to do CTS handshaking,
  409. !  and we assume that a CTS handshaking cable is being used.
  410. !
  411. @LABEL 70
  412. ! Turn on CTS handshaking.
  413. HSReset 0 1 0 0 0 0
  414. !
  415. ifANSWER 71
  416. pause 30
  417. @LABEL 71
  418. exit 0
  419. !
  420. !
  421. ! ---- Answer calls ----
  422. !
  423. !    A RING result from the modem and in ANSWERING mode
  424. !    claims the serial port and answering the phone
  425. !
  426. @LABEL 81
  427. ifORIGINATE 32
  428. userhook 1
  429. note "Answering phone..." 2
  430. write "ATA¥13"
  431. jump 32
  432. !
  433. !
  434. ! ---- Hang up and reset modem ----
  435. !
  436. @HANGUP
  437. @LABEL 90
  438. settries 0
  439. HSReset 0 0 0 0 0 0
  440. !
  441. @LABEL 92
  442. !  Escape from data to command mode
  443. matchclr
  444. matchstr 1 96 "OK¥13¥10"
  445. write "+++"
  446. matchread 20
  447. !
  448. @LABEL 94
  449. ! Force a hangup
  450. matchclr
  451. matchstr 1 98 "NO CARRIER¥13¥10"
  452. matchstr 2 98 "OK¥13¥10"
  453. matchstr 3 98 "ERROR¥13¥10"
  454. matchstr 4 98 "0¥13¥10"
  455. write "ATH¥13"
  456. matchread 30
  457. ! Try to get control of the modem by toggling DTR
  458. DTRClear
  459. pause 5
  460. DTRSet
  461. flush
  462. !
  463. ! Try the hangup sequence three times otherwise declare and error
  464. inctries
  465. iftries 3 101
  466. jump 92
  467. !
  468. @LABEL 96
  469. ! Pause between data and command mode
  470. pause 50
  471. jump 94
  472. !
  473. !
  474. @LABEL 98
  475. ! Recall the factory settings
  476. pause 15
  477. matchclr
  478. matchstr 1 99 "OK¥13¥10"
  479. write "AT¥13"
  480. matchread 30
  481. jump 101
  482. !
  483. @LABEL 99
  484. exit 0
  485. !
  486. ! ---- Error messages -----
  487. !
  488. ! Modem Not Responding
  489. @LABEL 101
  490. exit -6019
  491. !
  492. ! No Dial Tone
  493. @LABEL 102
  494. exit -6020
  495. !
  496. ! No Carrier or Error
  497. @LABEL 103
  498. exit -6021
  499. !
  500. ! Busy
  501. @LABEL 104
  502. exit -6022
  503. !
  504. ! No Answer
  505. @LABEL 105
  506. exit -6023
  507. !
  508. ! User Cancellation
  509. @LABEL 107
  510. exit -6002 "User cancelled the connection attempt."